package com.gqz.service;


import com.gqz.domain.BlogArticle;
import com.gqz.dto.ArticleDetailDto;
import com.gqz.dto.ArticleGdDto;
import com.gqz.dto.RelatedArticleDto;
import com.gqz.query.BaseQuery;
import com.gqz.utils.PageList;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface IBlogArticleService {

    /**
     * 分页查询所有的文章数据
     *
     * @param query
     * @return
     */
    PageList<BlogArticle> getAllArticle(BaseQuery query);

    /**
     * 添加文章
     * @param article
     * @return
     */
    boolean insertArticle(BlogArticle article,HttpServletRequest request);

    /**
     * 修改文章
     * @param article
     * @return
     */
    boolean updateArticle(BlogArticle article);

    /**
     * 批量删除
     */
    boolean batchDeleteArticle(Long[] ids);

    /**
     * 删除单条数据
     *
     * @param id
     */
    boolean deleteArticle(Long id);

    /**
     * 根据文章id获取文章的数据
     * @param id
     * @return
     */
    BlogArticle getArticleById(Long id);

    ArticleDetailDto getArticleDetailById(Long id);

    /**
     * 返回前端需要的归档数据信息
     * @param time
     * @return
     */
    ArticleGdDto getBlogGdList(String time);

    /**
     *  按照文章发布时间分组统计数量
     * @return
     */
    Object selectArticleTimeStatistics();

    List<RelatedArticleDto> getRelatedArticle(Long id);
}
